package com.zzyl.mapper;

import com.github.pagehelper.Page;
import com.zzyl.entity.Reservation;
import com.zzyl.vo.ReservationVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;

@Mapper
public interface ReservationMapper {

    /**
     * 查询取消预约次数
     */
    Integer select(@Param("userId") Integer userId,
                   @Param("start") LocalDateTime start,
                   @Param("end") LocalDateTime end);

    /**
     * 查询每个时间段剩余预约次数
     */
    Integer countByTime(@Param("localDateTime") LocalDateTime localDateTime);

    /**
     * 新增预约
     * @param
     */
    void insert(Reservation bean);

    /**
     * 分页查询预约
     */
    Page<ReservationVo> searchByPage(@Param("status") Integer status);

    /**
     * 取消预约
     * @param id
     */
    void cancel(@Param("id") Long id,@Param("updateBy") Long updateBy);

    /**
     * 自动执行预约过期
     */
    void autoStatus(@Param("now") LocalDateTime now);
}
